import { getAnimaLocalStatus } from '../../components/global_comps/Func/endsTimeAnimation';

/**
 * 在给定时间 单个 或 集 之后 运行 cb
 * @param nth 延时 数 或 集
 * @param cb 回调函数
 */
export function settimeNth(nth: number | number[], cb: Function) {
  if (typeof nth == 'number' && nth >= 0) {
    setTimeout(() => {
      cb();
    }, nth);
  } else if (Array.isArray(nth)) {
    setTimeout(() => {
      nth.shift();
      settimeNth(nth, cb);
    }, nth[0]);
  } else {
    cb();
  }
}

/**
 * 测定 当前元素 域 是否关闭了 动画
 * @param cur_dom 当前 主体元素
 * @param nth 延时 数 或 集
 * @param cb 回调函数
 */
export function settimeNth_anima_check(
  cur_dom: HTMLElement,
  nth: number | number[],
  cb: Function
) {
  if (getAnimaLocalStatus(cur_dom)) {
    cb();
  } else {
    settimeNth(nth, cb);
  }
}
